The present invention is concerned with computerized systems for control. In particular the present invention is a method for integrating many and varied types of application within a computerized system, and a system employing the method. The method and system may be used in a computerized system for controlling single devices, an object in a process, complete equipment, in any location including a home, as well as processes or industrial installations such as steel mills, paper mills, and automated factories.
In contemporary computer based systems for controlling manufacturing and process industries, such as chemical plants, oil refineries, pulp and paper mills, steel mills, etc., there has typically existed a large range of different applications of different origin that have had to be integrated into a single control system. Further, a control system typically includes several computers connected through a communication network, where said applications are distributed in different configurations for different installations. Traditional methods for this integration have entailed extremely lengthy development times resulting, for example, in significant changes in requirements before such control programs have been completed and made ready for use. A second problem with traditional development methods is that it has been difficult and lengthy to update such control programs to include new requirements, such as the integration of additional and new applications. Writing and modifying control system programs to combine newer applications with older, existing applications, which older applications are sometimes called legacy applications, has also been difficult, time consuming and expensive.
The adoption of object-oriented programming languages and methods has led to somewhat shorter development times, and made it somewhat easier to incorporate or integrate new applications.
IEC standard DIS ISO/IEC 1346-1 1995 Structuring principles and reference designations, contains a reference designation system for the unambiguous identification of parts of any system in the general technical context such as in a manufacturing company, plant or operating company. Within this description the terms object, aspect and reference designations in particular are used to refer such parts of any system in the general technical context in accordance with the definitions in DIS ISO/IEC 1346-1.In addition, certain additional types of objects and aspects will be additionally defined in the course of this description.
U.S. Pat. No. 5,787,425 describes a concept of client/server relationships between objects in an object-oriented computer program. Objects communicate with each other, for example in order for a first object to access data held by a second object. When the first object needs access to some data controlled by the second object, the first object is considered to be a client of the second object, which in turn is considered to be a server. To access the data controlled by the server object, the second object in this example, one of the operations of the first object, the client object, will call or invoke one of the operations of the server object. The operation of the server object thus invoked is then executed to access and/or manipulate the data on behalf of the client object.
When the client object and server object both exist and run in the same process (memory space) in the same computer, the server object is described as being xe2x80x9cin processxe2x80x9d. When the client and server objects run in different processes (memory spaces) in the same computer, the server object is described as being xe2x80x9clocalxe2x80x9d. When the client and server objects run in separate computers, the server object is described as being xe2x80x9cremotexe2x80x9d.
The standard operation of an Object Request Broker (ORB) is to handle requests between client and server objects. The ORB makes the handling of requests transparent to the client object whether the server object is in process, local or remote.
A known example of an ORB is published by Microsoft and is called Component Object Model (COM). It is a standard for interoperability between software components introduced in 1993. COM is independent of programming language and supported by many widely used computer operating systems such as Windows, Mac OS, and many types of Unix. It uses a single model for software components to communicate with each other, both inside the same computing process and also across process and network boundaries. COM is also associated with ActiveX (Trademark), a system of software controls that use COM technologies. The COM standard of 1995 is described in The Component Object Model Specification available in the Microsoft MSDN Online Library on the web site maintained by Microsoft. Additional information about COM may be found in, amongst others, an article in Dr. Dobbs Journal December 1994 entitled The Component Object Model: Technical Overview.
The adoption of object oriented programming and client-server approach has provided design tools that make it easier to design computerized systems with re-useable modules that co-operate in a standardized way to perform the collective functions of the system. However, it is necessary to integrate applications of different origin, that are implemented using different object and non-object technologies, including new applications, as well as applications that were anticipated but not known in detail at the time of planning a computerized system. Conventional system design requires that an object in a computerized system has prior information about an application in order for the object to, for example, access a method implemented by the application. A new way to design systems is required to integrate applications, such that different applications can be both fully independent, based on different technologies, and without knowledge of the specifics of each other, and at the same time able to co-operate with each other to perform the collective functionality of the computerized system.
An object of the invention is to provide a method to integrate an application in a system for computerized control of a real world object, and a system in which the method is employed. Another object of the invention is a method to integrate an application such that prior information about the application need not be specified. Another object of the invention is to provide a method to represent real world objects in a computerized system in a systematic way, in which different types of information about the real world object may be obtained, linked to the real world object, processed, displayed and acted on, and a system employing same. Another object of the invention is the integration of a large range of applications within the system in a modular manner. Another object of the invention is to provide a method for the integration of later and additional applications into an existing system. Another object of the invention is to provide for the integration of different applications that are implemented using different object and non-object oriented technologies. Another object of the invention is to provide a system and method in which separate applications that are independent and without knowledge about the specifics of each other, are able to co-operate to jointly provide system functionality that is associated with said real world objects. A further object of the invention is to provide a method and system in which control of equipment may be achieved in any location including a home or residence.
These and other objects are achieved according to the present invention by a method as described in claim 1 and a system as described in claim 14, and a computer program product described in claim 27. The present invention may be described summarily as a method for designing a computerized system, and a system employing same method, in which one or more real world objects are represented by an object called a Composite Object. The Composite Object is a part of a computer program included in the computerized system. One or more facets of the real world object, such as a physical location, a stage in a process, a control function, an operator interaction, a simulation model, some documentation about the object, etc are described as one or more Aspects of the Composite Object. A central feature of the present invention is that each Composite Object is a container for one or more Aspects of the real world object which represent the real world object.
An important new and useful element of the present invention lies in that different applications may be used to implement different Aspects or groups of Aspects of a Composite Object. Each application defines interfaces that are independent of the implementation of the application itself. These interfaces may be used by other applications, implementing other Aspects or groups of Aspects of the Composite Object, such that the applications can co-operate to provide a functionality that is the sum of all Aspects, i.e. the functionality of the Composite Object. The interfaces are specified as COM interfaces, where COM interfaces are implemented by COM objects as described above. The interfaces may be in-process, local, or remote. Internally, each application may use any object oriented technology, such as C++ or Java, or non-object oriented technology such as relational databases, sequential files, etc.
Many different types of application may be used to implement Aspects. For example a word processing program may be used by one Aspect to display a functional specification, and by another Aspect to edit operator notes. Similarly a CAD program may be used by an Aspect to display a drawing, and used by another Aspect to display an electrical diagram or by a third Aspect to display a piping and instrumentation diagram. Application programs are not limited in any way to those programs used in traditional process control methods. For example a production management application may be used by one Aspect to display a job order, by another Aspect to run an equipment schedule or by a third Aspect to show material in stock.
The principal advantage of the present invention is that a large range of applications may be integrated into a computerized system in a modular and independent fashion. Each application is, by means of Composite Objects and Aspects contained by Composite Objects, responsible for its own data and operations. This means that applications that are internally based on different object or non-object oriented implementation technologies can be integrated in such a way that no difference is apparent between the methods for supplying services provided by the different applications. This also means that modifying an application or adding an application requires no change to other applications in the system. This is a particularly useful feature of the present invention because it facilitates the addition of new Composite Object types which may require addition of new Aspects, including new applications to manage these new Aspects. Another advantage of the invention is that Aspects of a Composite Object provide a method to indicate inheritance which enables Composite Objects to inherit certain Aspects automatically without necessarily defining inheritance relationships between specific Composite Objects.
The present invention thus provides important benefits in several respects including: i) for the developer of a system, who can integrate existing, new, and future possibly not yet anticipated applications, without having to significantly rewrite every application to fit with any particular data model or implementation technology, ii) for the user of the system, who will perceive a seamless integration of vastly different applications that co-operate to provide the full functionality that is associated with the real-world entities that he or she is dealing with and iii) for the owner of the system whose investment is protected because the system may be developed with, or extended by, applications not previously anticipated.
The applicability of the present invention is not limited to traditional process control functions and use, but extends as well to many other areas. This includes business and commercial activities such as production management, design and maintenance systems, and business and financial systems. It also includes control of equipment in other locations including equipment or processes in a residence or a home.